import { format, isToday } from 'date-fns';

// 时间格式化为：yyyy-MM-dd HH:mm:ss
export function dateTimeFormat(time) {
    return format(time, 'yyyy-MM-dd HH:mm:ss');
}
// 时间格式化为：yyyy-MM-dd
export function dateFormat(time) {
    return format(time, 'yyyy-MM-dd');
}
// 时间格式化为：HH:mm:ss
export function timeFormat(time) {
    return format(time, 'HH:mm:ss');
}

// 判断日期是不是今天
export function dateIsToday(time) {
    return isToday(time);
}
//获取当前的时间
/**
 * 
 * @returns 2023/7/8 10:46:50
 */
export function getCurrentTime() {
    const time = new Date(new Date().toLocaleString()).getTime()
    const currentTime = new Date(time).toLocaleString()
    return currentTime
}

//获取一周内的数据
/**
 * 
 * @param {*} day 传入向前获取好多天的数据
 * @returns 
 */
export function weekDate(day) {
    const LastWeek = new Date(new Date().toLocaleString()).getTime() - day * 24 * 3600 * 1000
    const week = new Date(LastWeek).toLocaleString()
    return week
}

//获取当前日期的前一个月的年月日时分秒
/**
 * 
 * @param {*} type 0 是当天 -1 是上个月   1是下个月
 * @param {*} time 2023/7/8 10:35:10 当前时间的年月日时分秒
 * @returns 
 */
export function getXmonthToday(type, time) {
    var now = new Date(time);
    var year = now.getFullYear()
    var month = now.getMonth() + 1
    var day = now.getDate()
    var Hours = now.getHours()
    var min = now.getMinutes()
    var s = now.getSeconds()
    if (parseInt(month) < 10) {
        month = "0" + month;
    }
    if (parseInt(day) < 10) {
        day = "0" + day;
    }
    if (parseInt(Hours) < 10) {
        Hours = '0' + Hours
    }
    if (parseInt(min) < 10) {
        min = '0' + min
    }
    if (parseInt(s) < 10) {
        s = '0' + s
    }
    now = year + '-' + month + '-' + day + ' ' + Hours + ':' + min + ':' + s; // 如果取当月日期可直接 return 返回

    var preMonth = parseInt(month) - 1;
    preMonth = preMonth < 10 ? '0' + preMonth : preMonth; // 获取上个月的值
    var nextMonth = parseInt(month) + 1;
    nextMonth = nextMonth < 10 ? '0' + nextMonth : nextMonth; // 获取下个月个月的值

    if (parseInt(month) == 1 && type == -1) {//如果是1月份，要上个月 ，则取上一年的12月份
        return (parseInt(year) - 1) + '-12-' + day + ' ' + Hours + ':' + min + ':' + s;
    } else if (parseInt(month) == 12 && type == 1) { // 如果是12月，要下个月，取下一年的1月
        return (parseInt(year) + 1) + '-01-' + day + ' ' + Hours + ':' + min + ':' + s;
    }

    var preSize = new Date(year, parseInt(month) - 1, 0).getDate();//上月总天数
    var nextSize = new Date(year, parseInt(month) + 1, 0).getDate();//下月总天数
    if (preSize < parseInt(day) && type == -1) {// 取上个月，如果上个月总天数小于本月今天，取上个月最后一天    
        return year + '-' + preMonth + '-' + preSize + ' ' + Hours + ':' + min + ':' + s;
    } else if (nextSize < parseInt(day) && type == 1) { // 如果下个月总天数小于本月今天，取下个月最后一天  
        return year + '-' + nextMonth + '-' + nextSize + ' ' + Hours + ':' + min + ':' + s;
    }

    if (type == -1) {
        return year + '-' + preMonth + '-' + day + ' ' + Hours + ':' + min + ':' + s;
    } else if (type == 1) {
        return year + '-' + nextMonth + '-' + day + ' ' + Hours + ':' + min + ':' + s;
    } else if (type == 0) {
        return now;
    }
}
// 测试 
let a = getXmonthToday(-1, "2023/7/8 10:35:10");//前一个月时间

export function beCurrent(time) {
    var now = new Date(time);
    var year = now.getFullYear()
    var month = now.getMonth() + 1
    var day = now.getDate()
    var Hours = now.getHours()
    var min = now.getMinutes()
    var s = now.getSeconds()
    if (parseInt(month) < 10) {
        month = "0" + month;
    }
    if (parseInt(day) < 10) {
        day = "0" + day;
    }
    if (parseInt(Hours) < 10) {
        Hours = '0' + Hours
    }
    if (parseInt(min) < 10) {
        min = '0' + min
    }
    if (parseInt(s) < 10) {
        s = '0' + s
    }
    return now = year + '-' + month + '-' + day + ' ' + Hours + ':' + min + ':' + s; // 如果取当月日期可直接 return 返回
}

//近七日的年月日
const days = 7; // 近7天
const week = ['日', '一', '二', '三', '四', '五', '六']; // 星期
export function getDaysFun(days) {
    const dateList = Array.from({ length: days }, (v, i) => i).map(day => {
        const date = new Date();
        date.setDate(date.getDate() - day);
        return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() - 1);
    });
    return dateList
}

